package com.marvels.system.permission.dao;

import java.util.List;

import com.github.pagehelper.Page;
import com.marvels.system.permission.dto.SysRoleDTO;
import com.marvels.system.permission.dto.SysRoleMenuDTO;

public interface SysRoleDao {
	/**
	 * 删除角色
	 * @param record
	 * @return
	 */
    int deleteByPrimaryKey(SysRoleDTO record);
    
    /**
     * 新增角色
     * @param record
     * @return
     */
    int insert(SysRoleDTO record);
    
    /**
     * 新增角色菜单关系
     * @param list
     * @return
     */
    int insertRelation(List<SysRoleMenuDTO> list);
    
    /**
     * 删除角色菜单关系
     * @param record
     * @return
     */
    int deleteRelation(SysRoleDTO record);
    
    /**
     * 查询角色菜单关系
     * @param role
     * @return
     */
    List<SysRoleMenuDTO> selectRoleMenuRelations(SysRoleDTO role);
    
    /**
     * 新增角色菜单关系
     * @param list
     * @return
     */
    int insertNewRoleMenuRelations(List<SysRoleMenuDTO> list);
    
    /**
     * 删除角色菜单关系
     * @param list
     * @return
     */
    int deleteRoleMenuRelations(List<SysRoleMenuDTO> list);

    int insertSelective(SysRoleDTO record);

    /**
     * 查询角色
     * @param record
     * @return
     */
    SysRoleDTO selectByPrimaryKey(SysRoleDTO record);

    int updateByPrimaryKeySelective(SysRoleDTO record);
    
    /**
     * 更新角色
     * @param record
     * @return
     */
    int updateByPrimaryKey(SysRoleDTO record);
    
    /**
     * 角色分页查询
     * @param record
     * @return
     */
    public Page<SysRoleDTO> selectRolePage(SysRoleDTO record);
    
    /**
     * 查询全部角色
     * @return
     */
    public List<SysRoleDTO> selectAll();
    
    /**
     * 根据角色编码查询记录数
     * @param roleCode
     * @return
     */
    public Integer selectCountByRoleCode(String roleCode);
}